/* Original Author:  Dominick O'Dierno
 * Date: 2007   odiernod@gmail.com     --Originally intended for use with DOMercury:  http://www.odierno.com/domercury
 * Description: Provides Sub Index functionality to IItems
 * 
 * --CHANGELOG--
 * 
 * */
using System;
using System.Collections.Generic;
using System.Text;
using DOMercury.Interfaces;

namespace DOMercury.Interfaces
{
    public interface ISubIndex
    {
        /// <summary>
        /// The list of IItems which comprimise this sub index
        /// </summary>
        List<IItem> GetSubIndex(IItem item, IAction action);
        

        /// <summary>
        /// The ItemType of the parent Item
        /// </summary>
        string ParentItemType
        {
            get;
        }

        /// <summary>
        /// If true, sub index results will be shown dependant on search text, if false, all items will be displayed in list box regardless of search text
        /// </summary>
        bool EnableSearch
        {
            get;
        }
        /// <summary>
        /// Name of your plugin
        /// </summary>
        string Name
        {
            get;
        }
        /// <summary>
        /// Description of your plugin
        /// </summary>
        string Description
        {
            get;
        }

        /// <summary>
        /// Indicates whether or not this plugin has an options form.  Return false if not supplying an options form
        /// </summary>
        bool HasOptions
        {
            get;
        }

        /// <summary>
        /// This is the function that gets called when the user hits the "Show Options" but in the Plugin Details form.  You should call "ShowDialog" on your options form here.
        /// </summary>
        void ShowOptions();
       
    }
}
